package teleradiologia.service;

import java.util.List;

import teleradiologia.domain.Customer;
import teleradiologia.domain.Diagnosticlab;
import teleradiologia.domain.Ordering;
import teleradiologia.domain.Ordertype;
import teleradiologia.domain.Patient;
import teleradiologia.domain.Picture;
import teleradiologia.domain.Technician;
import teleradiologia.repository.OrderingDao;

public interface OrderingManipulator {
	// simple CRUD operations
	Ordering getById(long id); // read

	void update(Ordering ordering); // update

	void delete(Ordering ordering); // delete

	public List<Ordering> getAllByTechnician(String nip);

	public List<Ordering> getAllByDiagnosticlab(String krs);

	// IoC - setter
	public void setOrderingDao(OrderingDao orderingDao);

	public List<Ordering> getAllByPatient(long idpatient);

	public long create(Ordering ordering, Patient patient, Customer customer,
			Ordertype ordertype, Diagnosticlab diagnosticlab,
			Technician technician);

	void updateToDiagnosticlabAchive(String krs);

	void updateToTechnicianAchive(String nip);
}
